Controller managed flash memory devices, such as Secure Digital (SD), devices and MultiMediaCard (MMC) devices, each include a controller with its associated program memory and data memory. In order to configure the data memory of such a device, it is necessary to issue commands to the controller according to a protocol specified for the type of device. For example, data memories of SD devices can be configured by issuing SD commands to the SD controller and writing data over data signal lines coupled to the controller, and data memories of MMC devices can be configured by issuing MMC commands to the MMC controller and writing data over data signal lines coupled to the controller.
As used herein the term “controller managed flash memory device” refers to a flash memory device with a controller that implements a protocol for allowing read and write access to its associated flash memory. The term “embedded controller managed flash memory device” refers to a controller managed flash memory device that has been soldered or otherwise physically connected to a printed circuit board of another system that will use the flash device during its operation. The term “SD device” refers to a device that meets or substantially meets the requirements set forth for SD devices by the SD Card Association. The term “MMC device” refers to a device that meets or substantially meets the requirements for MMC devices set forth by Siemens AG and SanDisk Corporation.
SD and MMC devices are examples of controller managed flash memory devices because both include controllers that implement protocols for allowing read and write access to an associated flash memory. SD and MMC devices are commonly used as stand-alone removable storage devices for portable storage of digital data. For example, both SD and MMC devices are commonly used as stand-alone removable storage devices for digital cameras.
In addition to stand-alone removable storage applications, SD and MMC devices, as well as other controller managed flash memory devices, may be embedded in computing systems by soldering the devices to printed circuit boards. For example, portable electronics devices, such as digital media players and mobile phones may include embedded controller managed flash memory devices. The use of embedded controller managed flash memory devices in portable electronics devices is advantageous because of the compact design of the flash memory devices. A device that includes an embedded SD or MMC device is often referred to as an embedded system.
Before being used in embedded systems, it may be desirable to configure the data memories of controller managed flash memory devices by writing to the data memories data that is used by the embedded systems during operation. For example, data memories of embedded controller managed flash memory devices may be configured with databases, embedded system information, or any other data that is used by embedded systems during operation.
Initial configuration of data memories of controller managed flash memory devices typically occurs before the devices are embedded in their respective operating environments. For example, chip sockets designed to fit the pin or pad layouts and form factors of controller managed flash memory devices may be used to connect the devices to a special purpose programming platform that issues the configuration commands and writes the configuration data to the flash memories. Because the pins or pads of unembedded controller managed flash memory devices are physically accessible during initial programming, such programming can occur without significant difficulty. However, once controller managed flash memory devices are embedded in the systems in which the flash memory devices are intended to operate, reprogramming or reconfiguring the data memories is difficult due to lack of physical access to the controller managed flash memory device signal pins or pads. Moreover, the unavailability of embedded programming hardware or software capable of implementing the protocols required to reconfigure or reprogram the data memory of an embedded controller managed flash memory device also makes reconfiguration of data memories of embedded controller managed flash memory devices difficult.
Devices for reconfiguring embedded controllers exist. However, such devices rewrite the program memory to reconfigure the controller and do not implement the protocol by which the controller communicates to reprogram the data memory. In addition, such devices may require special purpose programming hardware separate from the programming data generation source and, in some cases, command generation hardware embedded in the same device or system as the controller. Requiring special purpose programming hardware in the device or system where the controller is located increases the cost and complexity of the device or system. In addition, requiring special purpose external programming hardware increases the cost and time required to reprogram embedded controllers.
Devices for programming embedded read only memories (ROMs) also exist. However, such devices do not implement the protocols required to communicate with a controller to reprogram the data memory of a controller managed flash memory device.
Accordingly, in light of these difficulties, there exists a need for methods and systems for reconfiguring data memory of embedded controller managed flash memory devices.